#include "State.h"


class btBroadphaseInterface;
class btDefaultCollisionConfiguration;
class btSequentialImpulseConstraintSolver;
class btCollisionDispatcher;
class btDiscreteDynamicsWorld;

class btCollisionShape;
class btRigidBody;
struct btDefaultMotionState;

namespace pong {
    class BulletState : virtual public State {
    protected:
        btBroadphaseInterface* broadphase;
        btDefaultCollisionConfiguration* collisionConfig;
        btCollisionDispatcher* dispatcher;
        btSequentialImpulseConstraintSolver* solver;
        btDiscreteDynamicsWorld* world;

    public:
        BulletState(void) {}
        virtual ~BulletState(void) {}

        virtual void load(Core&);
        virtual void unload(Core&);

        virtual bool update(Core&);
    };
}